package edu.ynu.se.xiecheng.achitectureclass.dao;


import edu.ynu.se.xiecheng.achitectureclass.common.dao.LogicDAO;
import edu.ynu.se.xiecheng.achitectureclass.domain.entity.Customer;
import edu.ynu.se.xiecheng.achitectureclass.domain.entity.Order;
import edu.ynu.se.xiecheng.achitectureclass.domain.entity.Shop;

import java.util.List;

public interface OrderDao extends LogicDAO<Order,Long> {

    Order findOrderById(Long orderId);

    List<Order> findOrderByShopAndAndCustomerAndPayState(Shop shop, Customer customer, Integer payState);

    List<Order> findOrderByCustomer(Customer customer);

    List<Order> findOrderByCustomerAndPayState(Customer customer,Integer payState);

    List<Order> findOrderByCustomerAndStateAndPayState(Customer customer,Integer state,Integer payState);

    List<Order> findOrderByShopAndState(Shop shop,Integer state);

    List<Order> findOrderByShopAndStateAndPayState(Shop shop,Integer state,Integer payState);

    List<Order> findOrderByShop(Shop shop);

    List<Order> findOrdersByShop(Shop shop);
}
